//
//  BBTableViewModel.h
//  BBKit
//
//  Created by apple on 2019/7/1.
//  Copyright © 2019年 baobao. All rights reserved.
//

#import "BBBaseViewModel.h"

NS_ASSUME_NONNULL_BEGIN

@interface BBTableViewModel : BBBaseViewModel


@property(nonatomic,strong,readonly) BBTableViewModel *(^ delegate)(id<UITableViewDelegate> delegate);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ dataSource)(id<UITableViewDataSource> dataSource);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ rowHeight)(CGFloat rowHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ sectionHeaderHeight)(CGFloat sectionHeaderHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ sectionFooterHeight)(CGFloat sectionFooterHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ estimatedRowHeight)(CGFloat estimatedRowHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ estimatedSectionHeaderHeight)(CGFloat estimatedSectionHeaderHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ estimatedSectionFooterHeight)(CGFloat estimatedSectionFooterHeight);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ separatorInset)(UIEdgeInsets separatorInset);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ editing)(BOOL editing);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ allowsSelection)(BOOL allowsSelection);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ allowsMultipleSelection)(BOOL allowsMultipleSelection);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ allowsSelectionDuringEditing)(BOOL allowsSelectionDuringEditing);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ allowsMultipleSelectionDuringEditing)(BOOL allowsMultipleSelectionDuringEditing);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ separatorStyle)(UITableViewCellSeparatorStyle separatorStyle);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ separatorColor)(UIColor *separatorColor);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ tableHeaderView)(UIView * tableHeaderView);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ tableFooterView)(UIView * separatorStyle);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ sectionIndexBackgroundColor)(UIColor *sectionIndexBackgroundColor);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ sectionIndexColor)(UIColor *sectionIndexColor);

#pragma mark - UIScrollView
@property(nonatomic,strong,readonly) BBTableViewModel *(^ contentSize)(CGSize contentSize);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ contentOffset)(CGPoint contentOffset);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ contentInset)(UIEdgeInsets contentInset);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ bounces)(BOOL bounces);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ alwaysBounceVertical)(BOOL alwaysBounceVertical);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ alwaysBounceHorizontal)(BOOL alwaysBounceHorizontal);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ pagingEnabled)(BOOL pagingEnabled);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ scrollEnabled)(BOOL scrollEnabled);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ showsHorizontalScrollIndicator)(BOOL showsHorizontalScrollIndicator);
@property(nonatomic,strong,readonly) BBTableViewModel *(^ showsVerticalScrollIndicator)(BOOL showsVerticalScrollIndicator);

@property(nonatomic,strong,readonly) BBTableViewModel *(^ scrollsToTop)(BOOL scrollsToTop);
@end

NS_ASSUME_NONNULL_END
